/**
 *  Copyright 2013 University Pierre & Marie Curie - UMR CNRS 7606 (LIP6/MoVe)
 *  All rights reserved.   This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *
 *  Initial contributor:
 *    Jean-Luc Amitousa - Thanh Cong - <jeanluc.amitousa.mankoy@gmail.com>
 *
 *  Mailing list:
 *    lom-messan.hillah@lip6.fr
 */
package sdmakerz_v1.coresyntax.generator.interfaces;

import java.util.List;

import org.eclipse.emf.ecore.resource.Resource;
import sdmakerz_v1.coresyntax.sDMakerV1.Call;
import sdmakerz_v1.coresyntax.sDMakerV1.Config;
import sdmakerz_v1.coresyntax.sDMakerV1.Diagram;
import sdmakerz_v1.coresyntax.sDMakerV1.Obj;
import sdmakerz_v1.coresyntax.sDMakerV1.Reference;

public interface IContext {
	
	public void init();
	
	/* *************** *
	 * *** SETTERS *** *
	 * *************** */
	
	public void setInput(IInputData inputData);
	public void setContextDiagram(Diagram contextDiagram);
	public void setConfigData(IConfigData configData);
	public void setDiagramRefData(IDiagramRefData diagramRefData);
	public void cleanContext();
	
	
	
	/* *************** *
	 * *** GETTERS *** *
	 * *************** */
	
	public IInputData getInputData();
	public IConfigData getConfigData();
	public IDiagramRefData getDiagramRefData();
	
	public List<IInterfaceData> getInterfacesDatas();
	public IInterfaceData getInterfaceDataByName(String interfaceName);
	public IInterfaceData getInterfaceDataByObject(Obj obj);
	public IInterfaceData getInterfaceDataByObjectName(String objName);
	
	public Diagram findDiagram(Reference diagRef);
	public Resource findDiagramInput(Reference diagRef);
	public Config findConfig(Reference confRef);
}
